Emmanuele Bassi [Wed, 29 Jun 2016 18:05:33 +0000 (19:05 +0100)]
gsk: Turn GskRenderNode into a pure GTypeInstance
Using GObject as the base type for a transient tree may prove to be too
intensive, especially when creating a lot of node instances. Since we
don't need properties or signals, and we don't need complex destruction
semantics, we can use GTypeInstance directly as the base type for
GskRenderNode.
Emmanuele Bassi [Thu, 23 Jun 2016 16:35:42 +0000 (17:35 +0100)]
gtk: Use GskRenderNode to render widgets
We need a virtual function to retrieve the GskRenderNode for each
widget, which is supposed to attach its own children's GskRenderNodes.
Additionally, we want to maintain the existing GtkWidget::draw mechanism
for widgets that do not implement get_render_node() — as well as widgets
that have handlers connected to the ::draw signal.
Emmanuele Bassi [Thu, 23 Jun 2016 16:34:38 +0000 (17:34 +0100)]
gtk: Add a GskRenderer to GtkWindow
Each top-level should have its own GskRenderer, to be used when drawing
the render node tree.
Emmanuele Bassi [Wed, 22 Jun 2016 16:30:36 +0000 (17:30 +0100)]
gsk: Rework GskRenderer and GskRenderNode semantics
This commit changes the way GskRenderer and GskRenderNode interact and
are meant to be used.
GskRenderNode should represent a transient tree of rendering nodes,
which are submitted to the GskRenderer at render time; this allows the
renderer to take ownership of the render tree. Once the toolkit and
application code have finished assembling it, the render tree ownership
is transferred to the renderer.
Emmanuele Bassi [Tue, 26 Apr 2016 13:23:12 +0000 (14:23 +0100)]
gsk: Flush the GL render items cache
Whenever the render tree changes we want to drop the RenderItem arrays,
as each item contains a pointer to the GskRenderNode which becomes
dangling once the root node changed.
Emmanuele Bassi [Tue, 26 Apr 2016 13:22:25 +0000 (14:22 +0100)]
gsk: Add GskRenderer::clear_tree
We need a way to clear eventual caches inside GskRenderer subclasses if
the root node has changed.
Emmanuele Bassi [Mon, 25 Apr 2016 11:26:46 +0000 (12:26 +0100)]
gsk: Port GskGLRenderer to GLES
Use the appropriate API and shaders if the GdkGLContext was created for
OpenGL ES instead of OpenGL.
Emmanuele Bassi [Mon, 25 Apr 2016 10:41:15 +0000 (11:41 +0100)]
gsk: Use surface-to-texture utility function
Now that we have it.
Emmanuele Bassi [Mon, 25 Apr 2016 10:09:25 +0000 (11:09 +0100)]
gsk: Rename shaders for OpenGL
Emmanuele Bassi [Mon, 25 Apr 2016 10:29:14 +0000 (11:29 +0100)]
gdk: Add utility for uploading Cairo surfaces to GL
The surface-to-GL upload logic has become more complicated with the
addition of the GLES code paths; it's more logical to have a public
utility function that can be called from GDK users, instead of copy
pasting the whole thing multiple times.
Emmanuele Bassi [Wed, 20 Apr 2016 15:00:45 +0000 (16:00 +0100)]
build: Add GSK deps to GTK
Emmanuele Bassi [Thu, 17 Mar 2016 13:48:19 +0000 (13:48 +0000)]
Initial implementation of GSK rendering pipeline
GSK is conceptually split into two scene graphs:
* a simple rendering tree of operations
* a complex set of logical layers
The latter is built on the former, and adds convenience and high level
API for application developers.
The lower layer, though, is what gets transformed into the rendering
pipeline, as it's simple and thus can be transformed into appropriate
rendering commands with minimal state changes.
The lower layer is also suitable for reuse from more complex higher
layers, like the CSS machinery in GTK, without necessarily port those
layers to the GSK high level API.
This lower layer is based on GskRenderNode instances, which represent
the tree of rendering operations; and a GskRenderer instance, which
takes the render nodes and submits them (after potentially reordering
and transforming them to a more appropriate representation) to the
underlying graphic system.
Emmanuele Bassi [Tue, 14 Jan 2014 13:01:35 +0000 (13:01 +0000)]
gsk: Initial commit / build environment
Emmanuele Bassi [Tue, 18 Oct 2016 10:29:06 +0000 (11:29 +0100)]
label: Avoid shadowing variables
Piotr Drąg [Tue, 18 Oct 2016 01:50:55 +0000 (03:50 +0200)]
Update POTFILES.in
Matthias Clasen [Mon, 17 Oct 2016 19:28:29 +0000 (15:28 -0400)]
Add a test for cursor names
This tests both that all standard cusor yield a cursor, and that
unknown cursor names yield NULL.
Matthias Clasen [Mon, 17 Oct 2016 19:27:15 +0000 (15:27 -0400)]
x11: Add the same message as the wayland backend has
This seems prudent, if we make noise about missing cursors
on Wayland, we should do the same on X11.
Matthias Clasen [Mon, 17 Oct 2016 19:26:29 +0000 (15:26 -0400)]
Reduce a warning to a message
The warning interferes with having a testcase to check this behavior,
so reduce this to a message.
Timm Bäder [Sun, 16 Oct 2016 18:56:47 +0000 (20:56 +0200)]
Remove GtkAction
Timm Bäder [Sun, 16 Oct 2016 18:46:37 +0000 (20:46 +0200)]
Remove GtkActionGroup
Timm Bäder [Mon, 17 Oct 2016 07:14:39 +0000 (09:14 +0200)]
Fix unittests
Timm Bäder [Mon, 17 Oct 2016 07:13:51 +0000 (09:13 +0200)]
widget: Not all toplevels are also containers
Timm Bäder [Sun, 16 Oct 2016 19:25:38 +0000 (21:25 +0200)]
tests/testylecontext: Don't double-free widgetpath
Timm Bäder [Sun, 16 Oct 2016 17:35:49 +0000 (19:35 +0200)]
Remove GtkRecentAction
Timm Bäder [Sun, 16 Oct 2016 17:28:11 +0000 (19:28 +0200)]
Remove GtkUIManager
Timm Bäder [Sun, 16 Oct 2016 16:48:05 +0000 (18:48 +0200)]
Remove GtkActivatable
Timm Bäder [Sun, 16 Oct 2016 16:32:10 +0000 (18:32 +0200)]
recentchooser: Stop implementing GtkActivatable
Timm Bäder [Sun, 16 Oct 2016 16:26:00 +0000 (18:26 +0200)]
recentchooserdefault: Stop implementing GtkActivatable
Timm Bäder [Sun, 16 Oct 2016 16:22:29 +0000 (18:22 +0200)]
toolitem: Stop implementing GtkActivatable
Timm Bäder [Sun, 16 Oct 2016 16:08:39 +0000 (18:08 +0200)]
Remove GtkToggleAction
Timm Bäder [Sun, 16 Oct 2016 15:46:00 +0000 (17:46 +0200)]
Remove GtkRadioAction
Timm Bäder [Sun, 16 Oct 2016 11:12:16 +0000 (13:12 +0200)]
Remove GtkStock
Timm Bäder [Sun, 16 Oct 2016 10:55:27 +0000 (12:55 +0200)]
infobar: Stop looking at stock items
GtkButton doesn't have a use-stock property anymore anyway.
Timm Bäder [Sat, 15 Oct 2016 19:56:09 +0000 (21:56 +0200)]
window: Remove decoration-button-layout style property
GtkSettings has a gtk-decoration-layout property for this.
Timm Bäder [Sat, 15 Oct 2016 19:55:38 +0000 (21:55 +0200)]
window: Remove decoration-resize-handle style property
Timm Bäder [Sat, 15 Oct 2016 19:34:32 +0000 (21:34 +0200)]
toolbar: Remove max-child-expand child property
Timm Bäder [Sat, 15 Oct 2016 15:43:56 +0000 (17:43 +0200)]
Remove GtkAlignment
Timm Bäder [Fri, 14 Oct 2016 20:07:36 +0000 (22:07 +0200)]
gtkapplication: Remove deprecated API
Timm Bäder [Fri, 14 Oct 2016 20:01:59 +0000 (22:01 +0200)]
treeview: Remove deprecated adjustment API
Timm Bäder [Fri, 14 Oct 2016 19:55:38 +0000 (21:55 +0200)]
combobox: Remove deprecated API
Timm Bäder [Fri, 14 Oct 2016 19:50:53 +0000 (21:50 +0200)]
adjustment: Remove deprecated API
Timm Bäder [Fri, 14 Oct 2016 19:38:50 +0000 (21:38 +0200)]
menutoolbutton: Remove deprecated API
Timm Bäder [Fri, 14 Oct 2016 19:35:35 +0000 (21:35 +0200)]
popover: Remove deprecated API
Timm Bäder [Fri, 14 Oct 2016 19:35:26 +0000 (21:35 +0200)]
range: Remove unused class struct members
Timm Bäder [Fri, 14 Oct 2016 19:19:33 +0000 (21:19 +0200)]
filechooserbutton: Remove deprecated API
Timm Bäder [Fri, 14 Oct 2016 19:14:18 +0000 (21:14 +0200)]
messagedialog: Remove deprecated API
Timm Bäder [Fri, 14 Oct 2016 14:01:56 +0000 (16:01 +0200)]
button: Add icon-name property
Remove the old-style button construction that allowed to show both an
icon and a label and change visibility based on a GtkSetting.
Timm Bäder [Fri, 14 Oct 2016 14:01:26 +0000 (16:01 +0200)]
testsuite/gtk: Use a GtkMenuButton to test exposing objects
Timm Bäder [Fri, 14 Oct 2016 14:00:26 +0000 (16:00 +0200)]
docs/tools/widgets: Stop using gtk_button_set_image
Timm Bäder [Fri, 14 Oct 2016 13:58:48 +0000 (15:58 +0200)]
buttonaccessible: Stop looking at the button's image
Timm Bäder [Thu, 13 Oct 2016 17:02:47 +0000 (19:02 +0200)]
tests: Add testgaction.c
Timm Bäder [Thu, 13 Oct 2016 14:47:08 +0000 (16:47 +0200)]
radiomenuitem: Remove GtkActivatable code
Timm Bäder [Thu, 13 Oct 2016 14:21:37 +0000 (16:21 +0200)]
toolbutton: Stop implementing GtkActivatable
Timm Bäder [Thu, 13 Oct 2016 14:10:31 +0000 (16:10 +0200)]
switch: Stop implementing GtkActivatable
Timm Bäder [Thu, 13 Oct 2016 14:06:03 +0000 (16:06 +0200)]
menuitem: Stop implementing GtkActivatable
Timm Bäder [Thu, 13 Oct 2016 13:55:00 +0000 (15:55 +0200)]
Remove GtkTable
Timm Bäder [Thu, 13 Oct 2016 13:26:03 +0000 (15:26 +0200)]
gtkwindow: Stop checking gtk-menu-bar-accel
Timm Bäder [Wed, 12 Oct 2016 20:06:44 +0000 (22:06 +0200)]
button: Stop implementing GtkActivatable
Timm Bäder [Wed, 12 Oct 2016 20:04:15 +0000 (22:04 +0200)]
button: Stop checking for GtkSettings:gtk-button-images setting
Timm Bäder [Wed, 12 Oct 2016 19:56:23 +0000 (21:56 +0200)]
Stop checking GtkSettings:gtk-enable-mnemonics
Timm Bäder [Wed, 12 Oct 2016 18:01:31 +0000 (20:01 +0200)]
widget: Remove push/pop_composite_child
as well as the composite-child property
Timm Bäder [Wed, 12 Oct 2016 17:48:16 +0000 (19:48 +0200)]
widget: Remove gtk_widget_get_pointer
Timm Bäder [Wed, 12 Oct 2016 17:46:46 +0000 (19:46 +0200)]
widget: Remove docs for style-set
Timm Bäder [Wed, 12 Oct 2016 17:46:23 +0000 (19:46 +0200)]
widget: Remove gtk_widget_reparent
Timm Bäder [Tue, 11 Oct 2016 14:43:29 +0000 (16:43 +0200)]
scrollbar: Remove style property
Timm Bäder [Tue, 11 Oct 2016 14:43:11 +0000 (16:43 +0200)]
builtinicon: remove unused struct member
Timm Bäder [Tue, 11 Oct 2016 14:41:22 +0000 (16:41 +0200)]
menuitem: Remove right-justify
Timm Bäder [Tue, 11 Oct 2016 13:57:00 +0000 (15:57 +0200)]
label: Stop using GdkColor
Timm Bäder [Tue, 11 Oct 2016 13:27:20 +0000 (15:27 +0200)]
cellrenderer: Remove cell-background-gdk
Timm Bäder [Tue, 11 Oct 2016 13:04:17 +0000 (15:04 +0200)]
gtksettings: Remove Deprecated API
Timm Bäder [Tue, 11 Oct 2016 12:50:22 +0000 (14:50 +0200)]
window: Remove reshow_with_initial_size
Timm Bäder [Tue, 11 Oct 2016 12:45:43 +0000 (14:45 +0200)]
viewport: remove deprecated api
Timm Bäder [Tue, 11 Oct 2016 12:41:30 +0000 (14:41 +0200)]
gtkdnd: Remove gtk_drag_begin
Timm Bäder [Tue, 11 Oct 2016 12:37:22 +0000 (14:37 +0200)]
gtkmain: Remove deprecated key snooper API
Timm Bäder [Tue, 11 Oct 2016 11:34:49 +0000 (13:34 +0200)]
treeview: Remove unused style properties
Timm Bäder [Tue, 11 Oct 2016 11:29:05 +0000 (13:29 +0200)]
bbox: Remove style properties
Timm Bäder [Tue, 11 Oct 2016 11:16:18 +0000 (13:16 +0200)]
gtkdialog: Remove style properties
Timm Bäder [Tue, 11 Oct 2016 11:10:02 +0000 (13:10 +0200)]
colorbutton: Remove deprecated API
Timm Bäder [Tue, 11 Oct 2016 10:07:33 +0000 (12:07 +0200)]
menu: Remove vertical/horizontal-offset style properties
Timm Bäder [Tue, 11 Oct 2016 07:48:26 +0000 (09:48 +0200)]
notebook: Remove deprecated public API
Timm Bäder [Tue, 11 Oct 2016 07:44:36 +0000 (09:44 +0200)]
toolbar: Remove button-relief style property
And in turn also public API to set the button relief on the toolbar as
well as the vfunc from GtkToolShell.
Timm Bäder [Tue, 11 Oct 2016 07:44:21 +0000 (09:44 +0200)]
textview: Remove error-underline-color style property
Timm Bäder [Tue, 11 Oct 2016 07:33:12 +0000 (09:33 +0200)]
toolbutton: Remove icon-spacing style property
Benjamin Otte [Mon, 17 Oct 2016 22:22:04 +0000 (00:22 +0200)]
separatortoolitem: Use gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 22:21:54 +0000 (00:21 +0200)]
spinbutton: Use gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 22:21:45 +0000 (00:21 +0200)]
switch: Use gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 22:21:33 +0000 (00:21 +0200)]
pathbar: Use gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 22:21:17 +0000 (00:21 +0200)]
paned: Use gdk_window_new_child() and gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 22:20:47 +0000 (00:20 +0200)]
notebook: Use gdk_window_new_child() and gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 22:20:32 +0000 (00:20 +0200)]
menu: Use gdk_window_new_child()
Benjamin Otte [Mon, 17 Oct 2016 22:20:17 +0000 (00:20 +0200)]
layout: Use gdk_window_new_child()
Benjamin Otte [Mon, 17 Oct 2016 22:20:02 +0000 (00:20 +0200)]
iconview: Use gdk_window_new_child()
Benjamin Otte [Mon, 17 Oct 2016 18:23:17 +0000 (20:23 +0200)]
toolitemgroup: Use gdk_window_new_child()
Benjamin Otte [Mon, 17 Oct 2016 18:23:04 +0000 (20:23 +0200)]
toolitem: Use gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 18:22:47 +0000 (20:22 +0200)]
toolbar: Use gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 18:22:33 +0000 (20:22 +0200)]
popover: Use gdk_window_new_child()
Benjamin Otte [Mon, 17 Oct 2016 18:22:16 +0000 (20:22 +0200)]
menushell: Use gdk_window_new_child()
Benjamin Otte [Mon, 17 Oct 2016 18:21:55 +0000 (20:21 +0200)]
label: Use gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 18:21:42 +0000 (20:21 +0200)]
menuitem: Use gdk_window_new_input()
Benjamin Otte [Mon, 17 Oct 2016 18:21:21 +0000 (20:21 +0200)]
overlay: Use gdk_window_new_child()